<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- 避免IE使用兼容模式 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1">
<meta name="renderer" content="webkit">
<!-- TopJUI框架样式 -->
<link type="text/css" href="../../topjui/themes/default/topjui.core.min.css" rel="stylesheet">
<link type="text/css" href="../../topjui/themes/default/topjui.blue.css" rel="stylesheet" id="dynamicTheme" />
<!-- FontAwesome字体图标 -->
<link type="text/css" href="../../statics/plugins/font-awesome/css/font-awesome.min.css" rel="stylesheet" />
<!-- layui框架样式 -->
<link type="text/css" href="../../statics/plugins/layui/css/layui.css" rel="stylesheet" />
<!-- jQuery相关引用 -->
<script type="text/javascript" src="../../statics/plugins/jquery/jquery.min.js"></script>
<script type="text/javascript" src="../../statics/plugins/jquery/jquery.cookie.js"></script>
<!-- TopJUI框架配置 -->
<script type="text/javascript" src="../../statics/public/js/topjui.config.js"></script>
<!-- TopJUI框架核心-->
<script type="text/javascript" src="../../topjui/js/topjui.core.min1.js"></script>
<!-- TopJUI中文支持 -->
<script type="text/javascript" src="../../topjui/js/locale/topjui.lang.zh_CN.js"></script>
<!-- layui框架js -->
<script type="text/javascript" src="../../statics/plugins/layui/layui.js" charset="utf-8"></script>

</head>
<body>

	<div data-toggle="topjui-layout" data-options="fit:true">
		<div
			data-options="region:'center',title:'',fit:true,split:true,border:false">
			<!-- datagrid表格 -->
			<table data-toggle="topjui-datagrid" class="productDg1"
				data-options="id: 'roleDg',
               				fitColumns:true,
              				remoteSort:false,
               				method:'get',
               				url: '/role/queryRole'">
				<thead>
					<tr>
						<th data-options="field:'rolename',title:'角色名称',sortable:true,width:100,align:'center'"></th>
						<th data-options="field:'canuseapp',title:'APP访问',sortable:true,width:50,align:'center'"></th>
						<th data-options="field:'authShowStr',title:'对应功能模块',sortable:true,width:250"></th>
						<th data-options="field:'operate',title:'操作',formatter:operateFormatter,width:50,align:'center'"></th> 	
					</tr>
				</thead>
			</table>
		</div>
	</div>
	<!-- layout布局 结束 -->

	<!-- 表格工具栏开始 -->
	<div id="roleDg-toolbar" class="topjui-toolbar"
		data-options="grid:{
           type:'datagrid',
           id:'roleDg'
       }">
       <a href="javascript:void(0)" data-toggle="topjui-menubutton"
			data-options="iconCls: 'fa fa-plus',btnCls:'topjui-btn-blue'" onclick="openAddDiag()">新增</a>
		<form id="queryForm" class="search-box">
			<input type="text" name="rolename" data-toggle="topjui-textbox"
				data-options="id:'rolename',prompt:'角色名称',width:150,validType:'maxLength[30]'">
			<a href="javascript:void(0)" data-toggle="topjui-menubutton"
				data-options="method:'query',
           					iconCls:'fa fa-search',
           					btnCls:'topjui-btn-blue',
           					form:{id:'queryForm'},
           					grid:{type:'datagrid','id':'roleDg'}">查询</a>
		</form>
	</div>

	<!-- 表格工具栏结束 -->

	<script>
	function openAddDiag(){
		ID = '';
		var $addDialog = $('<form id="roleDg-add"  style="width: 800px; height:500px; margin: auto; display: none;"></form>');
		var diag = $addDialog.dialog({
		    title: '角色新建',
		    href: '/web/view/role/role_add.html',
		    modal: true,
		    resizable:true,
 		    maximizable:true,
		    collapsible:true,
		    buttons:[{
				text:'保存',
				handler:function(){
					if($('#roleDg-add').form('validate')) {
						var formData = $("#roleDg-add").serialize();
						var url = '/role/insertRole';
						debugger;	
						var rows = $('input[name="authids"]');
						var authids=[];
						rows.each(function(){
							var obj ={};
							obj.authid = $(this).val();//这个键值对的key值这里是authid，要与xml中的描述一致；
							authids.push(obj);
						});
			            $.post(url,formData+'&roleid='+ID+'&aids='+JSON.stringify(authids),function (res,status) {
			                if (status == 'success') { // 后台返回状态值
			                    $.iMessager.show({title: '我的消息', msg: res.message, timeout: 5000, showType: 'slide'});// '消息窗口'组件
			                    $("#roleDg").iDatagrid('reload');// 刷新下表格数据
			                    diag.dialog("destroy");// 销毁dialog面板
			                } else {
			                    $.iMessager.show({title: '我的消息', msg: res.message, timeout: 5000, showType: 'slide'});// '消息窗口'组件
			                }
			            },'JSON');
					}
				}
			},{
				text:'关闭',
				handler:function(){diag.dialog("destroy");}
			}],onClose: function () {
                $(this).dialog('destroy');//销毁
            }
		});
		$addDialog.dialog('open');
		
	}
	
	//表头“操作”栏，formatter定义，这里面可以自定义按钮样式
	//row = {authShowStr: "系统管理 , 部门管理... ", createuserid: "1", id: "1", isdel: "0", rolename: "管理员"}
	function operateFormatter(value, row, index) {
		debugger;
        var htmlstr = '<button class="layui-btn layui-btn-xs" onclick="openEditDiag(\'' + row.id + '\')">编辑</button>';
        htmlstr += '<button class="layui-btn layui-btn-xs layui-btn-danger" onclick="deleteRow(\'' + row.id + '\')">删除</button>';
        return htmlstr;
    }
	function deleteRow(id){
		debugger;
		$.messager.confirm("操作提示", "是否删除？", function (data) {
			if(data) {
				$.post("/role/delRole",{"roleid":id},function(res,status){
					 if (status == 'success') { // 后台返回状态值
		                 $.iMessager.show({title: '我的消息', msg: res.message, timeout: 5000, showType: 'slide'});// '消息窗口'组件
		                 $("#roleDg").iDatagrid('reload');// 刷新下表格数据（roleDg是上面数据表格的id）
		                 $('#roleAddDialog').iDialog('destroy');// 销毁dialog面板
		             } else {
		                 $.iMessager.show({title: '我的消息', msg: res.message, timeout: 5000, showType: 'slide'});// '消息窗口'组件
		             }
				},'JSON');
			}else {}
		});
	}
	
	//打开编辑页面
	var ID = "";//定义全局变量用于保存当前角色id
	function openEditDiag(id){
		debugger;
		ID = id;
		$.ajax({ url: "/role/queryRoleById?roleid="+ID, 
 			type:"get",dataType:"json", success: function(data){
 			openDialog(data.data);//调用下面的用于回显的打开对话框函数
		 }}); //调用下面的函数时只提供了返回的role对象，并没有authids的数组，这个怎么处理呢？？？
	}
	
	//由openEditDiag(id)函数末尾调用
	function openDialog(d){
		var $updateDialog = $('<form id="roleDg-update"  style="width: 800px; height: 500px; margin: auto; display: none;"></form>');
		var diag = $updateDialog.dialog({
		    title: '角色编辑',
		    href: '/web/view/role/role_add.html',
		    modal: true,
		    resizable:true,
 		    maximizable:true,
		    collapsible:true,
		    buttons:[{
				text:'保存',
				handler:function(){
					if($('#roleDg-update').form('validate')) {
						  var formData = $("#roleDg-update").serialize();
						  var url = '/role/updateRole';
						  //这里模仿上面的写法获取checkbox的值

						debugger;	
						var rows = $('input[name="authids"]');//authids是role_add.html页面中的下拉列表的checkbox控件的name
						var authids=[];
						rows.each(function(){
							var obj ={};
							obj.authid = $(this).val();//这个键值对的key值这里是authid，要与xml中的描述一致；
							authids.push(obj);
						});
						  
							//下面的参数也要参考上面的写法
							//aids是Controller的updateRole方法中的参数
			            	$.post(url,formData+'&roleid='+ID+'&aids='+JSON.stringify(authids),function (res,status) {
				            //$.post(url,formData+'&roleid='+ID,function (res,status) {
				                if (status == 'success') { // 后台返回状态值
				                    $.iMessager.show({title: '我的消息', msg: res.message, timeout: 5000, showType: 'slide'});// '消息窗口'组件
				                    $("#roleDg").iDatagrid('reload');// 刷新下表格数据
				                    diag.dialog("destroy");// 销毁dialog面板
				                } else {
				                    $.iMessager.show({title: '我的消息', msg: res.message, timeout: 5000, showType: 'slide'});// '消息窗口'组件
				                }
				            },'JSON');
					  }
				}
			},{
				text:'关闭',
				handler:function(){diag.dialog("destroy");}
			}],
			onClose: function () {
                $(this).dialog('destroy');//销毁
            },onLoad :function(){
        		debugger;
            	$('#roleDg-update').form('load',d);//回显数据
            }
		});
		$updateDialog.dialog('open');
	}
	
	//下面的方法暂时没看见使用的地方	
	function ajaxFormUpdate(e){
		
		if($('#posUpdateDialog').form('validate')) {
			  var formData = $("#posUpdateDialog").serialize();
			  var url = '/position/updatePostion';
	            $.post(url,formData+'&id='+ID,function (res,status) {
	                if (status == 'success') { // 后台返回状态值
	                    $.iMessager.show({title: '我的消息', msg: res.message, timeout: 5000, showType: 'slide'});// '消息窗口'组件
	                    $("#roleDg").iDatagrid('reload');// 刷新下表格数据
	                    $('#posUpdateDialog').iDialog('destroy');// 销毁dialog面板
	                } else {
	                    $.iMessager.show({title: '我的消息', msg: res.message, timeout: 5000, showType: 'slide'});// '消息窗口'组件
	                }
	            },'JSON');
		 }
	
	}
	
	//下面的方法暂时没看见使用的地方	
	function ajaxForm(){
		  if($('#positionForm').form('validate')) {
			  var formData = $("#positionForm").serialize();
			  var url = '/position/insertPostion';
	            $.post(url,formData,function (res,status) {
	                if (status == 'success') { // 后台返回状态值
	                    $.iMessager.show({title: '我的消息', msg: res.message, timeout: 5000, showType: 'slide'});// '消息窗口'组件
	                    $("#roleDg").iDatagrid('reload');// 刷新下表格数据
	                    $('#posUpdateDialog').iDialog('destroy');// 销毁dialog面板
	                } else {
	                    $.iMessager.show({title: '我的消息', msg: res.message, timeout: 5000, showType: 'slide'});// '消息窗口'组件
	                }
	            },'JSON');
		  }
		 
	}
    function menuHandler(){}
</script>


</body>
</html>